#ifndef COEXISTENCE_MATRIX_H_
#define COEXISTENCE_MATRIX_H_

class CoexistenceMatrix {

private:
  int **coexistence_matrix;
  int max_object_label;
  int max_objects_detectable;

  void MinimizeLabelsBetweenRows();

  void MinimizeLabelsBetweenColumns();

public:
  CoexistenceMatrix(int max_objects_detectable);

  void ResetDataStructures();

  ~CoexistenceMatrix();

  void Fill(int label, int coexistent_label);

  void MinimizeLabels();

  int GetCorrectLabel(int label);
};

#endif
